#pragma once


/**
 * Header file dependencies:
 * // TODO diagram
 */


/**
 * inference process:
 *
 *                               createInferRuntime(gLogger)
 *                                        |
 *                                     runtime
 *                                        |
 *             runtime->deserializeTxdaEngine(input.data(), input.size())
 *                                        |
 *                                   txda_engine
 *                                        |
 *                         txda_engine->createExecutionContext()
 *                                        |
 *                                     context
 *                               _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
 *                             /          |          \                                   \
 *  setOptimizationProfileAsync()  setInputShape(..)  allInputDimensionsSpecified()  setTensorAddress(..)
 *                             |_ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ |
 *                                        |
 *                             enqueue(stream) [warmup]
 *                                        |
 *                                 enqueue(stream)
 *                                \_ _ _ _|_ _ _ _/
 *                                        |
 *                                    TxnnCpp.h
 *                                        |
 *                               builtin_ops.h / plugin_ops.h (TODO refactor)
 */